﻿using System;
using SnakeGame;

class Program
{
    public static int Main(string[] args)
    {
        int x = 0;
        int y = 0;

        const int screenWidth = 5;
        const int screenHeight = 5;

        //while (true)
        //{
        //    ConsoleKeyInfo KeyInfo = Console.ReadKey(false);
        //    char input = KeyInfo.KeyChar;
        //    switch (input)
        //    {
        //        case 'w':
        //            y++;
        //            break;
        //        case 's':
        //            y--;
        //            break;
        //        case 'a':
        //            x--;
        //            break;
        //        case 'd':
        //            x++;
        //            break;
        //        default:
        //            continue;
        //    }
        //    x = Math.Min(4, Math.Max(0, x));
        //    y = Math.Min(4, Math.Max(0, y));
        //    //Console.WriteLine("x is {0},y is {1}", x, y);
        //    Console.Clear();
        //    for(int iy = 0; iy <= 4; iy++)
        //    {
        //        if(iy == 4 - y) 
        //        { 
        //            for(int ix =0; ix <= 4; ix++)
        //            {
        //                if(ix == x)
        //                {
        //                    Console.Write("0");
        //                }
        //                else
        //                {
        //                    Console.Write("+");
        //                }
        //            }
        //            Console.WriteLine("");
        //        }
        //        else
        //        {
        //            Console.WriteLine("+++++");
        //        }
        //    }
        //}

        DateTime lastFrameTime = System.DateTime.UtcNow;
        Random rand = new Random(lastFrameTime.Millisecond);
        Screen screen = new Screen(screenWidth,screenHeight);

        while (true)
        {
            x = rand.Next(0, screenWidth);
            y = rand.Next(0, screenHeight);

            //刷新画面
            //Console.Clear();
            //for (int iy = 0; iy <= 4; iy++)
            //{
            //    if (iy == 4 - y)
            //    {
            //        for (int ix = 0; ix <= 4; ix++)
            //        {
            //            if (ix == x)
            //            {
            //                Console.Write("0");
            //            }
            //            else
            //            {
            //                Console.Write("+");
            //            }
            //        }
            //        Console.WriteLine("");
            //    }
            //    else
            //    {
            //        Console.WriteLine("+++++");
            //    }
            //}
            screen.Clear();
            screen.SetElement(x, y, 'o');
            screen.Display();


            DateTime currentFrameTime = System.DateTime.UtcNow;
            Double frameTime = (currentFrameTime - lastFrameTime).TotalMilliseconds;
            Double remainTime = 1000.0 / 3 - frameTime;
            if (remainTime > 0)
            {
                System.Threading.Thread.Sleep((int)remainTime);
                lastFrameTime = System.DateTime.UtcNow;
            }
            else
            {
                lastFrameTime = currentFrameTime;
            }
        }

        return 0;
    }
}